package dao;

import java.util.List;
import javax.persistence.Query;
import javax.swing.JOptionPane;
import model.Pedido;
import model.Preco;

public class PedidoDAO extends GenericDAO {
    
    Pedido pedido = new Pedido();
    
    public Pedido findById(Long id){
        try{
            this.OpenConection();
            pedido = this.em.find(Pedido.class, id);
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, "Erro ao consultar - "+e.getMessage());
        }finally{
            this.CloseConection();
        }
        return pedido;
    }
    
//    public Pedido findByName(String nome){
//        try{
//            this.OpenConection();
//            Query consulta;
//            consulta = em.createQuery("select u from Pedido u where u.nome = :nome");
//            consulta.setParameter("nome", nome);
//            pedido = (Preco)consulta.getSingleResult();
//            JOptionPane.showMessageDialog(null, lote.getNome());
//        }catch(Exception e){
//            JOptionPane.showMessageDialog(null, "Erro ao consultar - "+e.getMessage());
//        }finally{
//            this.CloseConection();
//        }
//        return pedido;
//    }
    
    public void delete(Pedido a) {
        try {
            this.OpenConection();
            em.remove(em.getReference(Pedido.class, a.getId()));
            em.getTransaction().commit();
            JOptionPane.showMessageDialog(null, "Deletado com sucesso !");
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro ao deletar - "+e.toString());
            em.getTransaction().rollback();
            System.out.println(e.getStackTrace());
            
        } finally {
            this.CloseConection();
        }
    }
    
    public List<Pedido> findAll(){
        try{
            this.OpenConection();
            Query consulta;
            consulta = em.createQuery("SELECT u FROM Pedido u", Preco.class);
            List<Pedido> lista;
            lista = consulta.getResultList();
            return lista;
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, "Erro ao listar - "+e.toString());
            em.getTransaction().rollback();
            System.out.println(e.getStackTrace());
            return null;
        }
    }
    
}//CLASS
